Completed
Push — master ( 49250c...43b06a )
by Stephan
03:49
created

ext.SimpleBatchUpload.js ➔ $   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 68

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 1
c 3
b 0
f 0
nc 1
nop 0
dl 0
loc 68
rs 9.2447

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
/**
2
 * File containing the SimpleBatchUpload class
3
 *
4
 * @copyright (C) 2016, Stephan Gambke
5
 * @license   GNU General Public License, version 2 (or any later version)
6
 *
7
 * This software is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU General Public License
9
 * as published by the Free Software Foundation; either version 2
10
 * of the License, or (at your option) any later version.
11
 * This software is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
17
 *
18
 * @file
19
 * @ingroup SimpleBatchUpload
20
 */
21
22
/** global: mediaWiki */
23
/** global: jQuery */
24
25
;( function ( $, mw, undefined ) {
26
27
	'use strict';
28
29
	$( function () {
30
		$( '#fileupload' )
31
32
		.on( 'change', function ( /* e, data */ ) { $( '#fileupload-results' ).empty(); } )
33
		.on( 'drop', function ( /* e, data */ ) { $( '#fileupload-results' ).empty(); } )
34
35
		.fileupload( {
36
			dataType: 'json',
37
			dropZone: $( '#fileupload-dropzone' ),
38
			progressInterval: 100,
39
40
41
			add: function ( e, data ) {
42
43
				data.id = Date.now();
44
45
				var status = $('<li>')
46
					.attr( 'id', data.id )
47
					.text( data.files[0].name );
48
49
				$( '#fileupload-results' ).append( status );
50
51
				data.formData = {
52
					format: 'json',
53
					action: 'upload',
54
					token: $( this ).fileupload( 'option', 'token' ),
55
					ignorewarnings: 1,
56
					filename: data.files[ 0 ].name
57
				};
58
59
				data.submit()
60
					.success( function ( result /*, textStatus, jqXHR */ ) {
61
62
						if ( result.error != undefined ) {
63
64
							status.text( status.text() + " ERROR: " + result.error.info ).addClass( 'ful-error' );
65
66
						} else {
67
							var link = $( '<a>' );
68
							link
69
								.attr( 'href', mw.Title.makeTitle( mw.config.get( 'wgNamespaceIds' ).file, result.upload.filename ).getUrl() )
70
								.text( result.upload.filename );
71
72
							status
73
								.addClass( 'ful-success' )
74
								.text( ' OK' )
75
								.prepend( link );
76
						}
77
78
					} )
79
					.error( function ( /* jqXHR, textStatus, errorThrown */ ) {
80
						status.text( status.text() + " ERROR" ).addClass( 'ful-error' );
81
					} );
82
83
			},
84
85
			progress: function (e, data) {
86
				if ( data.loaded != data.total ) {
87
					$( '#' + data.id )
88
						.text( data.files[0].name + ' ' + parseInt(data.loaded / data.total * 100, 10) + '%' );
89
				}
90
			}
91
		} );
92
93
		$( document ).bind( 'drop dragover', function ( e ) {
94
			e.preventDefault();
95
		} );
96
	} );
97
98
}( jQuery, mediaWiki ));
0 ignored issues
show
Bug introduced by
The variable mediaWiki seems to be never declared. If this is a global, consider adding a /** global: mediaWiki */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
99